iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 23
0
自我挑戰組

向Android APP開發說Hello系列 第 23

Day 23. Android的Memory管理與View Recycling (Part.1)

  • 分享至 

  • xImage
  •  

Day22中,我們以一個ArrayList動態地建立TextView,如下:

TextView wordView = new TextView(this);
        wordView.setText(tortoises.get(0)); //tortoises是個ArrayList
        rootView.addView(wordView);

這部分可以改寫為for,以便使用整個ArrayList:

for (int index=0; index<tortoises.size(); index++){
    wordView.setText(tortoises.get(index));
    rootView.addView(wordView);
}

如此一來,便能增加多個TextView,但若我們的ArrayList超長,我們真的有需要建立那麼多TextView嗎?
例如我們有100個物件在ArrayList中,但使用者一次只能看10筆資訊時,就牽涉到如何重複使用TextView了。

Android的Memory管理

Memory的管理之所以重要,是因為行動裝置內的資源是由各個App所共享,尤其是多個App同時運作,App間可能會互相影響。
這裡我們將用到VIEW RECYCLING(視圖回收),其需要ListViewAdapter合作

超出螢幕範圍的view將被回收。
Scrap Views:一堆目前沒用到的view

因此當使用者滑動螢幕時:

  • view是否已超出螢幕範圍,ListView會自行判斷,並放到Scrap Views中。
  • 是否需要有新的view,直接從Scrap Views中拿,並更新其內容即可。
    • TextView就更新其文字
    • ImageView就更新其圖片

明天將進入VIEW RECYCLING的實作。


上一篇
Day 22. 以ArrayList建立TextView
下一篇
Day 24. Android的Memory管理與View Recycling (Part.2)
系列文
向Android APP開發說Hello30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言